//
//  UserAccountViewModel.m
//  我的微博
//
//  Created by tom-1 on 15/12/11.
//  Copyright © 2015年 tom-1. All rights reserved.
//

#import "UserAccountViewModel.h"

@implementation UserAccountViewModel
/**
 模型通常继承自 NSObject -> 可以使用 KVC 设置属性，简化对象构造
 如果没有父类，所有的内容，都需要从头创建，量级更轻
 
 视图模型的作用：封装`业务逻辑`，通常没有复杂的属性
 */


- (BOOL)isExpred {
    // 判断用户账户过期日期与当前系统日期`进行比较`
    // 自己改写日期，测试逻辑是否正确，创建日期的时候，如果给定 负数，返回比当前时间早的日期
    // account?.expiresDate = NSDate(timeIntervalSinceNow: -3600)
    
    // 如果 account 为 nil，不会调用后面的属性，后面的比较也不会继续...
    NSDate *date = [NSDate date];
    if ([self.accout.expiresDate compare:date]) {
        return NO;
    }
    return YES;
}

- (BOOL)userlogin {
    // 1. 如果 token 有值，说明登录成功
    // 2. 如果没有过期，说明登录有效
    return self.accout.access_token != nil && !self.isExpred;
}

- (NSString *)accoutPath {
    NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject;
    return [path stringByAppendingPathComponent:@"account.plist"];
}
// 构造函数
- (instancetype)init {
    if (self = [super init]) {
        // 从沙盒解档数据 恢复当前数据
        self.accout = [NSKeyedUnarchiver unarchiveObjectWithFile:self.accoutPath];
        
        // 判断touken是否过期
        if (self.isExpred) {
            NSLog(@"已经过期");
            // 如果过期 清空解档数据
            self.accout = nil;
        }
        NSLog(@"%@",self.accout);
    }
    return self;
}
@end
